开发者需要在配置文件config.json中声明支持的复杂数据的类型,以便于表盘获取系统已安装应用支持的复杂数据列表。同时在配置文件中注册复杂数据的基础信息和表盘预览界面的展示数据,包括复杂数据类型、数据定时更新周期,以及预览数据(需符合所选类型的数据规格)。
为支持把数据显示到表盘,开发者需要完成:
继承ComplicationProviderAbility基类,向表盘框架提供数据。
public class DemoProviderAbility extends ComplicationProviderAbility {
@Override
public void onRefresh(int complicationIndex, int type, ComplicationCallback callback) {
// 表盘请求数据时调用,可依据type组装数据,并通过callback发送回表盘
// complicationIndex是表盘控件的ID,可以用来根据不同的显示控件发送不同的数据
}
@Override
public void onAdded(int complicationIndex, int type, ComplicationCallback callback) {
// 表盘首次添加或者绑定Complication时调用,可以保存complicationIndex,需要主动更新表盘数据时可以作为参数更新指定表盘控件
}
@Override
public void onRemoved(int complicationIndex) {
// 表盘删除此Complication时调用,可以删除本地保存的complicationIndex,不再需要触发主动更新
}
}
在配置文件config.json中声明步骤1创建的Ability,并在其中配置支持的复杂数据类型、数据定时更新间隔,以及可以用来表盘自定义时预览的数据。
{
“module”: {
“abilities”: [
{
“name”: “.DemoProviderAbility”,
“icon”: “$media:demo_icon”,
“label”: “$string:demo_label”,
“visible”: true,
“permissions”: [
“ohos.wearable.complication.permission.BIND_COMPLICATION_PROVIDER”
],
“type”: “service”,
“skills”: [
{
“actions”: [
“ohos.wearable.complication.ACTION_REQUEST_UPDATE_COMPLICATION”
],
“entities”: []
}
],
“metaData”: {
“customizeData”: [
{
“name”: “ohos.wearable.complication.COMPLICATION_TYPES”,
“value”: “SIMPLE”
},
{
“name”: “ohos.wearable.complication.UPDATE_PERIOD_SECONDS”,
“value”: “300”
},
{
“name”: “ohos.wearable.complication.COMPLICATION_PREVIEW_DATA”,
“extra”: “$profile:data_demo”
}
]
}
},
]
}
}
字段 |
说明 |
取值范围 |
约束 |
---|---|---|---|
ohos.wearable.complication.COMPLICATION_TYPES |
复杂数据类型,一个ComplicationProviderAbility 可支持多种类型的复杂数据。 |
LAUNCHER、SIMPLE、RANGED、LARGE、LIST |
– |
ohos.wearable.complication.UPDATE_PERIOD_SECONDS |
在定时更新的机制下,数据定时更新时间间隔。主动更新请参考数据更新中的主动更新。 |
[300s, 3600s] |
未设定或设定值大于3600s时则按3600s更新数据,设定值小于300s时则按300s更新数据。 |
ohos.wearable.complication.COMPLICATION_PREVIEW_DATA |
自定义界面的预览数据,以xml文件提供,具体编写方式请参考复杂数据类型中的提供预览数据。 |
– |
数据固定,仅在表盘自定义界面进行展示。 |
ohos.wearable.complication.COMPLICATION_PREVIEW_ICON |
引用图标资源的声明字段。 |
– |
需要声明后资源才可以在COMPLICATION_PREVIEW_DATA数据中使用。 |
ohos.wearable.complication.COMPLICATION_PREVIEW_TITLE |
引用标题资源的声明字段。 |
– |
需要声明后资源才可以在COMPLICATION_PREVIEW_DATA数据中使用。 |
ohos.wearable.complication.COMPLICATION_PREVIEW_TEXT |
引用文本资源的声明字段。 |
– |
需要声明后资源才可以在COMPLICATION_PREVIEW_DATA数据中使用。 |
ohos.wearable.complication.IS_HIDDEN |
是否向应用专属表盘之外的其他表盘隐藏,隐藏后意味着用户在其他表盘上无法选择使用此数据,只有应用专属表盘可以使用。默认不隐藏。 |
true:隐藏,false:不隐藏。 |
– |
